package rpcx

import (
	rpcxc "github.com/smallnest/rpcx/client"
	rpcxs "github.com/smallnest/rpcx/server"
)

/*
注册中心：
	服务注册组件
	服务发现组件
*/

type AttrPlugin struct {
	BASEPATH string // 服务注册命名空间
}

func (ap *AttrPlugin) BasePath() string { return ap.BASEPATH }

// P2PRegisterPlugin
// 点对点注册中心 无注册组件 实现空组件 避免报错
type P2PRegisterPlugin struct{}

func (rp *P2PRegisterPlugin) Unregister(_ string) error {
	return nil
}
func (rp *P2PRegisterPlugin) Register(_ string, _ interface{}, _ string) error {
	return nil
}

type RegisterPlugin struct {
	AttrPlugin
	rpcxs.RegisterPlugin
}

type DiscoveryPlugin struct {
	AttrPlugin
	rpcxc.ServiceDiscovery
}
